﻿using System;
using System.Threading.Tasks;

using ApproveFlowEngine.Approve.DTO;
using ApproveFlowEngine.Enums.Core;

using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace ApproveFlowEngine.Approve
{
    public interface IApproveAppService : IApplicationService
    {
        #region Public Methods

        Task Create(WorkFlowDto input);
        Task Delete(Guid flowId);
        Task FlowApprove(Guid flowId, Guid nodeId, ApproveNodeStatus nodeStatus);
        Task FlowStart(Guid flowId);
        Task<PagedResultDto<WorkFlowDto>> GetFlowPage(PagedResultRequestDto input);

        Task Update(Guid flowId, WorkFlowDto input);

        #endregion Public Methods
    }
}